﻿/* Copyright 2013 Shawn Henry, Rob Smith, and Michael Friedman
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.4952
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

[assembly: System.Runtime.Serialization.ContractNamespaceAttribute("http://dev.virtualearth.net/webservices/v1/common", ClrNamespace="dev.virtualearth.net.webservices.v1.common")]
[assembly: System.Runtime.Serialization.ContractNamespaceAttribute("http://dev.virtualearth.net/webservices/v1/geocode", ClrNamespace="dev.virtualearth.net.webservices.v1.geocode")]

// 
// This code was auto-generated by SlSvcUtil, version 3.7.0.0
// 
namespace dev.virtualearth.net.webservices.v1.common
{
    using System.Runtime.Serialization;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RequestBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(dev.virtualearth.net.webservices.v1.geocode.ReverseGeocodeRequest))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(dev.virtualearth.net.webservices.v1.geocode.GeocodeRequest))]
    public partial class RequestBase : object
    {
        
        private dev.virtualearth.net.webservices.v1.common.Credentials CredentialsField;
        
        private string CultureField;
        
        private dev.virtualearth.net.webservices.v1.common.ExecutionOptions ExecutionOptionsField;
        
        private dev.virtualearth.net.webservices.v1.common.UserProfile UserProfileField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Credentials Credentials
        {
            get
            {
                return this.CredentialsField;
            }
            set
            {
                this.CredentialsField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Culture
        {
            get
            {
                return this.CultureField;
            }
            set
            {
                this.CultureField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.ExecutionOptions ExecutionOptions
        {
            get
            {
                return this.ExecutionOptionsField;
            }
            set
            {
                this.ExecutionOptionsField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.UserProfile UserProfile
        {
            get
            {
                return this.UserProfileField;
            }
            set
            {
                this.UserProfileField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Credentials", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Credentials : object
    {
        
        private string ApplicationIdField;
        
        private string TokenField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string ApplicationId
        {
            get
            {
                return this.ApplicationIdField;
            }
            set
            {
                this.ApplicationIdField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Token
        {
            get
            {
                return this.TokenField;
            }
            set
            {
                this.TokenField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ExecutionOptions", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class ExecutionOptions : object
    {
        
        private bool SuppressFaultsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool SuppressFaults
        {
            get
            {
                return this.SuppressFaultsField;
            }
            set
            {
                this.SuppressFaultsField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UserProfile", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class UserProfile : object
    {
        
        private dev.virtualearth.net.webservices.v1.common.Heading CurrentHeadingField;
        
        private dev.virtualearth.net.webservices.v1.common.UserLocation CurrentLocationField;
        
        private dev.virtualearth.net.webservices.v1.common.DeviceType DeviceTypeField;
        
        private dev.virtualearth.net.webservices.v1.common.DistanceUnit DistanceUnitField;
        
        private string IPAddressField;
        
        private dev.virtualearth.net.webservices.v1.common.ShapeBase MapViewField;
        
        private dev.virtualearth.net.webservices.v1.common.SizeOfint ScreenSizeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Heading CurrentHeading
        {
            get
            {
                return this.CurrentHeadingField;
            }
            set
            {
                this.CurrentHeadingField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.UserLocation CurrentLocation
        {
            get
            {
                return this.CurrentLocationField;
            }
            set
            {
                this.CurrentLocationField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.DeviceType DeviceType
        {
            get
            {
                return this.DeviceTypeField;
            }
            set
            {
                this.DeviceTypeField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.DistanceUnit DistanceUnit
        {
            get
            {
                return this.DistanceUnitField;
            }
            set
            {
                this.DistanceUnitField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string IPAddress
        {
            get
            {
                return this.IPAddressField;
            }
            set
            {
                this.IPAddressField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.ShapeBase MapView
        {
            get
            {
                return this.MapViewField;
            }
            set
            {
                this.MapViewField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.SizeOfint ScreenSize
        {
            get
            {
                return this.ScreenSizeField;
            }
            set
            {
                this.ScreenSizeField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Address", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Address : object
    {
        
        private string AddressLineField;
        
        private string AdminDistrictField;
        
        private string CountryRegionField;
        
        private string DistrictField;
        
        private string FormattedAddressField;
        
        private string LocalityField;
        
        private string PostalCodeField;
        
        private string PostalTownField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string AddressLine
        {
            get
            {
                return this.AddressLineField;
            }
            set
            {
                this.AddressLineField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string AdminDistrict
        {
            get
            {
                return this.AdminDistrictField;
            }
            set
            {
                this.AdminDistrictField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CountryRegion
        {
            get
            {
                return this.CountryRegionField;
            }
            set
            {
                this.CountryRegionField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string District
        {
            get
            {
                return this.DistrictField;
            }
            set
            {
                this.DistrictField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string FormattedAddress
        {
            get
            {
                return this.FormattedAddressField;
            }
            set
            {
                this.FormattedAddressField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Locality
        {
            get
            {
                return this.LocalityField;
            }
            set
            {
                this.LocalityField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string PostalCode
        {
            get
            {
                return this.PostalCodeField;
            }
            set
            {
                this.PostalCodeField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string PostalTown
        {
            get
            {
                return this.PostalTownField;
            }
            set
            {
                this.PostalTownField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Heading", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Heading : object
    {
        
        private double OrientationField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Orientation
        {
            get
            {
                return this.OrientationField;
            }
            set
            {
                this.OrientationField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UserLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class UserLocation : dev.virtualearth.net.webservices.v1.common.Location
    {
        
        private dev.virtualearth.net.webservices.v1.common.Confidence ConfidenceField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Confidence Confidence
        {
            get
            {
                return this.ConfidenceField;
            }
            set
            {
                this.ConfidenceField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ShapeBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(dev.virtualearth.net.webservices.v1.common.Rectangle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(dev.virtualearth.net.webservices.v1.common.Circle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(dev.virtualearth.net.webservices.v1.common.Polygon))]
    public partial class ShapeBase : object
    {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SizeOfint", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class SizeOfint : object
    {
        
        private int HeightField;
        
        private int WidthField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Height
        {
            get
            {
                return this.HeightField;
            }
            set
            {
                this.HeightField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Width
        {
            get
            {
                return this.WidthField;
            }
            set
            {
                this.WidthField = value;
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DeviceType", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DeviceType : int
    {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Desktop = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mobile = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DistanceUnit", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DistanceUnit : int
    {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Kilometer = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mile = 1,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Location", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(dev.virtualearth.net.webservices.v1.common.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(dev.virtualearth.net.webservices.v1.common.UserLocation))]
    public partial class Location : object
    {
        
        private double AltitudeField;
        
        private double LatitudeField;
        
        private double LongitudeField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Altitude
        {
            get
            {
                return this.AltitudeField;
            }
            set
            {
                this.AltitudeField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Latitude
        {
            get
            {
                return this.LatitudeField;
            }
            set
            {
                this.LatitudeField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Longitude
        {
            get
            {
                return this.LongitudeField;
            }
            set
            {
                this.LongitudeField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class GeocodeLocation : dev.virtualearth.net.webservices.v1.common.Location
    {
        
        private string CalculationMethodField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CalculationMethod
        {
            get
            {
                return this.CalculationMethodField;
            }
            set
            {
                this.CalculationMethodField = value;
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Confidence", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum Confidence : int
    {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        High = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Medium = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Low = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Rectangle", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Rectangle : dev.virtualearth.net.webservices.v1.common.ShapeBase
    {
        
        private dev.virtualearth.net.webservices.v1.common.Location NortheastField;
        
        private dev.virtualearth.net.webservices.v1.common.Location SouthwestField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Location Northeast
        {
            get
            {
                return this.NortheastField;
            }
            set
            {
                this.NortheastField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Location Southwest
        {
            get
            {
                return this.SouthwestField;
            }
            set
            {
                this.SouthwestField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Circle", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Circle : dev.virtualearth.net.webservices.v1.common.ShapeBase
    {
        
        private dev.virtualearth.net.webservices.v1.common.Location CenterField;
        
        private dev.virtualearth.net.webservices.v1.common.DistanceUnit DistanceUnitField;
        
        private double RadiusField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Location Center
        {
            get
            {
                return this.CenterField;
            }
            set
            {
                this.CenterField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.DistanceUnit DistanceUnit
        {
            get
            {
                return this.DistanceUnitField;
            }
            set
            {
                this.DistanceUnitField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Radius
        {
            get
            {
                return this.RadiusField;
            }
            set
            {
                this.RadiusField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Polygon", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class Polygon : dev.virtualearth.net.webservices.v1.common.ShapeBase
    {
        
        private dev.virtualearth.net.webservices.v1.common.Location[] VerticesField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Location[] Vertices
        {
            get
            {
                return this.VerticesField;
            }
            set
            {
                this.VerticesField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse))]
    public partial class ResponseBase : object
    {
        
        private System.Uri BrandLogoUriField;
        
        private dev.virtualearth.net.webservices.v1.common.ResponseSummary ResponseSummaryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Uri BrandLogoUri
        {
            get
            {
                return this.BrandLogoUriField;
            }
            set
            {
                this.BrandLogoUriField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.ResponseSummary ResponseSummary
        {
            get
            {
                return this.ResponseSummaryField;
            }
            set
            {
                this.ResponseSummaryField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class ResponseSummary : object
    {
        
        private dev.virtualearth.net.webservices.v1.common.AuthenticationResultCode AuthenticationResultCodeField;
        
        private string CopyrightField;
        
        private string FaultReasonField;
        
        private dev.virtualearth.net.webservices.v1.common.ResponseStatusCode StatusCodeField;
        
        private string TraceIdField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.AuthenticationResultCode AuthenticationResultCode
        {
            get
            {
                return this.AuthenticationResultCodeField;
            }
            set
            {
                this.AuthenticationResultCodeField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Copyright
        {
            get
            {
                return this.CopyrightField;
            }
            set
            {
                this.CopyrightField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string FaultReason
        {
            get
            {
                return this.FaultReasonField;
            }
            set
            {
                this.FaultReasonField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.ResponseStatusCode StatusCode
        {
            get
            {
                return this.StatusCodeField;
            }
            set
            {
                this.StatusCodeField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string TraceId
        {
            get
            {
                return this.TraceIdField;
            }
            set
            {
                this.TraceIdField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeResult", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public partial class GeocodeResult : object
    {
        
        private dev.virtualearth.net.webservices.v1.common.Address AddressField;
        
        private dev.virtualearth.net.webservices.v1.common.Rectangle BestViewField;
        
        private dev.virtualearth.net.webservices.v1.common.Confidence ConfidenceField;
        
        private string DisplayNameField;
        
        private string EntityTypeField;
        
        private dev.virtualearth.net.webservices.v1.common.GeocodeLocation[] LocationsField;
        
        private string[] MatchCodesField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Address Address
        {
            get
            {
                return this.AddressField;
            }
            set
            {
                this.AddressField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Rectangle BestView
        {
            get
            {
                return this.BestViewField;
            }
            set
            {
                this.BestViewField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Confidence Confidence
        {
            get
            {
                return this.ConfidenceField;
            }
            set
            {
                this.ConfidenceField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string DisplayName
        {
            get
            {
                return this.DisplayNameField;
            }
            set
            {
                this.DisplayNameField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string EntityType
        {
            get
            {
                return this.EntityTypeField;
            }
            set
            {
                this.EntityTypeField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.GeocodeLocation[] Locations
        {
            get
            {
                return this.LocationsField;
            }
            set
            {
                this.LocationsField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string[] MatchCodes
        {
            get
            {
                return this.MatchCodesField;
            }
            set
            {
                this.MatchCodesField = value;
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="AuthenticationResultCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum AuthenticationResultCode : int
    {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NoCredentials = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ValidCredentials = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidCredentials = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CredentialsExpired = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NotAuthorized = 7,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseStatusCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum ResponseStatusCode : int
    {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Success = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BadRequest = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ServerError = 2,
    }
}
namespace dev.virtualearth.net.webservices.v1.geocode
{
    using System.Runtime.Serialization;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ReverseGeocodeRequest", Namespace="http://dev.virtualearth.net/webservices/v1/geocode")]
    public partial class ReverseGeocodeRequest : dev.virtualearth.net.webservices.v1.common.RequestBase
    {
        
        private dev.virtualearth.net.webservices.v1.common.Location LocationField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Location Location
        {
            get
            {
                return this.LocationField;
            }
            set
            {
                this.LocationField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeRequest", Namespace="http://dev.virtualearth.net/webservices/v1/geocode")]
    public partial class GeocodeRequest : dev.virtualearth.net.webservices.v1.common.RequestBase
    {
        
        private dev.virtualearth.net.webservices.v1.common.Address AddressField;
        
        private dev.virtualearth.net.webservices.v1.geocode.GeocodeOptions OptionsField;
        
        private string QueryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Address Address
        {
            get
            {
                return this.AddressField;
            }
            set
            {
                this.AddressField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.geocode.GeocodeOptions Options
        {
            get
            {
                return this.OptionsField;
            }
            set
            {
                this.OptionsField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Query
        {
            get
            {
                return this.QueryField;
            }
            set
            {
                this.QueryField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeOptions", Namespace="http://dev.virtualearth.net/webservices/v1/geocode")]
    public partial class GeocodeOptions : object
    {
        
        private System.Nullable<int> CountField;
        
        private dev.virtualearth.net.webservices.v1.geocode.FilterBase[] FiltersField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Nullable<int> Count
        {
            get
            {
                return this.CountField;
            }
            set
            {
                this.CountField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.geocode.FilterBase[] Filters
        {
            get
            {
                return this.FiltersField;
            }
            set
            {
                this.FiltersField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="FilterBase", Namespace="http://dev.virtualearth.net/webservices/v1/geocode")]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(dev.virtualearth.net.webservices.v1.geocode.ConfidenceFilter))]
    public partial class FilterBase : object
    {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ConfidenceFilter", Namespace="http://dev.virtualearth.net/webservices/v1/geocode")]
    public partial class ConfidenceFilter : dev.virtualearth.net.webservices.v1.geocode.FilterBase
    {
        
        private dev.virtualearth.net.webservices.v1.common.Confidence MinimumConfidenceField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.Confidence MinimumConfidence
        {
            get
            {
                return this.MinimumConfidenceField;
            }
            set
            {
                this.MinimumConfidenceField = value;
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeResponse", Namespace="http://dev.virtualearth.net/webservices/v1/geocode")]
    public partial class GeocodeResponse : dev.virtualearth.net.webservices.v1.common.ResponseBase
    {
        
        private dev.virtualearth.net.webservices.v1.common.GeocodeResult[] ResultsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public dev.virtualearth.net.webservices.v1.common.GeocodeResult[] Results
        {
            get
            {
                return this.ResultsField;
            }
            set
            {
                this.ResultsField = value;
            }
        }
    }
}


[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://dev.virtualearth.net/webservices/v1/geocode/contracts", ConfigurationName="IGeocodeService")]
public interface IGeocodeService
{
    
    [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://dev.virtualearth.net/webservices/v1/geocode/contracts/IGeocodeService/Geoc" +
        "ode", ReplyAction="http://dev.virtualearth.net/webservices/v1/geocode/contracts/IGeocodeService/Geoc" +
        "odeResponse")]
    [System.ServiceModel.FaultContractAttribute(typeof(dev.virtualearth.net.webservices.v1.common.ResponseSummary), Action="http://dev.virtualearth.net/webservices/v1/geocode/contracts/IGeocodeService/Geoc" +
        "odeResponseSummaryFault", Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    System.IAsyncResult BeginGeocode(dev.virtualearth.net.webservices.v1.geocode.GeocodeRequest request, System.AsyncCallback callback, object asyncState);
    
    dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse EndGeocode(System.IAsyncResult result);
    
    [System.ServiceModel.OperationContractAttribute(AsyncPattern=true, Action="http://dev.virtualearth.net/webservices/v1/geocode/contracts/IGeocodeService/Reve" +
        "rseGeocode", ReplyAction="http://dev.virtualearth.net/webservices/v1/geocode/contracts/IGeocodeService/Reve" +
        "rseGeocodeResponse")]
    [System.ServiceModel.FaultContractAttribute(typeof(dev.virtualearth.net.webservices.v1.common.ResponseSummary), Action="http://dev.virtualearth.net/webservices/v1/geocode/contracts/IGeocodeService/Reve" +
        "rseGeocodeResponseSummaryFault", Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    System.IAsyncResult BeginReverseGeocode(dev.virtualearth.net.webservices.v1.geocode.ReverseGeocodeRequest request, System.AsyncCallback callback, object asyncState);
    
    dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse EndReverseGeocode(System.IAsyncResult result);
}

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public interface IGeocodeServiceChannel : IGeocodeService, System.ServiceModel.IClientChannel
{
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class GeocodeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
    
    private object[] results;
    
    public GeocodeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState)
    {
        this.results = results;
    }
    
    public dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse Result
    {
        get
        {
            base.RaiseExceptionIfNecessary();
            return ((dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse)(this.results[0]));
        }
    }
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class ReverseGeocodeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
{
    
    private object[] results;
    
    public ReverseGeocodeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
            base(exception, cancelled, userState)
    {
        this.results = results;
    }
    
    public dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse Result
    {
        get
        {
            base.RaiseExceptionIfNecessary();
            return ((dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse)(this.results[0]));
        }
    }
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class GeocodeServiceClient : System.ServiceModel.ClientBase<IGeocodeService>, IGeocodeService
{
    
    private BeginOperationDelegate onBeginGeocodeDelegate;
    
    private EndOperationDelegate onEndGeocodeDelegate;
    
    private System.Threading.SendOrPostCallback onGeocodeCompletedDelegate;
    
    private BeginOperationDelegate onBeginReverseGeocodeDelegate;
    
    private EndOperationDelegate onEndReverseGeocodeDelegate;
    
    private System.Threading.SendOrPostCallback onReverseGeocodeCompletedDelegate;
    
    private BeginOperationDelegate onBeginOpenDelegate;
    
    private EndOperationDelegate onEndOpenDelegate;
    
    private System.Threading.SendOrPostCallback onOpenCompletedDelegate;
    
    private BeginOperationDelegate onBeginCloseDelegate;
    
    private EndOperationDelegate onEndCloseDelegate;
    
    private System.Threading.SendOrPostCallback onCloseCompletedDelegate;
    
    public GeocodeServiceClient()
    {
    }
    
    public GeocodeServiceClient(string endpointConfigurationName) : 
            base(endpointConfigurationName)
    {
    }
    
    public GeocodeServiceClient(string endpointConfigurationName, string remoteAddress) : 
            base(endpointConfigurationName, remoteAddress)
    {
    }
    
    public GeocodeServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(endpointConfigurationName, remoteAddress)
    {
    }
    
    public GeocodeServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(binding, remoteAddress)
    {
    }
    
    public System.Net.CookieContainer CookieContainer
    {
        get
        {
            System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager>();
            if ((httpCookieContainerManager != null))
            {
                return httpCookieContainerManager.CookieContainer;
            }
            else
            {
                return null;
            }
        }
        set
        {
            System.ServiceModel.Channels.IHttpCookieContainerManager httpCookieContainerManager = this.InnerChannel.GetProperty<System.ServiceModel.Channels.IHttpCookieContainerManager>();
            if ((httpCookieContainerManager != null))
            {
                httpCookieContainerManager.CookieContainer = value;
            }
            else
            {
                throw new System.InvalidOperationException("Unable to set the CookieContainer. Please make sure the binding contains an HttpC" +
                        "ookieContainerBindingElement.");
            }
        }
    }
    
    public event System.EventHandler<GeocodeCompletedEventArgs> GeocodeCompleted;
    
    public event System.EventHandler<ReverseGeocodeCompletedEventArgs> ReverseGeocodeCompleted;
    
    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> OpenCompleted;
    
    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> CloseCompleted;
    
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    System.IAsyncResult IGeocodeService.BeginGeocode(dev.virtualearth.net.webservices.v1.geocode.GeocodeRequest request, System.AsyncCallback callback, object asyncState)
    {
        return base.Channel.BeginGeocode(request, callback, asyncState);
    }
    
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse IGeocodeService.EndGeocode(System.IAsyncResult result)
    {
        return base.Channel.EndGeocode(result);
    }
    
    private System.IAsyncResult OnBeginGeocode(object[] inValues, System.AsyncCallback callback, object asyncState)
    {
        dev.virtualearth.net.webservices.v1.geocode.GeocodeRequest request = ((dev.virtualearth.net.webservices.v1.geocode.GeocodeRequest)(inValues[0]));
        return ((IGeocodeService)(this)).BeginGeocode(request, callback, asyncState);
    }
    
    private object[] OnEndGeocode(System.IAsyncResult result)
    {
        dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse retVal = ((IGeocodeService)(this)).EndGeocode(result);
        return new object[] {
                retVal};
    }
    
    private void OnGeocodeCompleted(object state)
    {
        if ((this.GeocodeCompleted != null))
        {
            InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
            this.GeocodeCompleted(this, new GeocodeCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
        }
    }
    
    public void GeocodeAsync(dev.virtualearth.net.webservices.v1.geocode.GeocodeRequest request)
    {
        this.GeocodeAsync(request, null);
    }
    
    public void GeocodeAsync(dev.virtualearth.net.webservices.v1.geocode.GeocodeRequest request, object userState)
    {
        if ((this.onBeginGeocodeDelegate == null))
        {
            this.onBeginGeocodeDelegate = new BeginOperationDelegate(this.OnBeginGeocode);
        }
        if ((this.onEndGeocodeDelegate == null))
        {
            this.onEndGeocodeDelegate = new EndOperationDelegate(this.OnEndGeocode);
        }
        if ((this.onGeocodeCompletedDelegate == null))
        {
            this.onGeocodeCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGeocodeCompleted);
        }
        base.InvokeAsync(this.onBeginGeocodeDelegate, new object[] {
                    request}, this.onEndGeocodeDelegate, this.onGeocodeCompletedDelegate, userState);
    }
    
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    System.IAsyncResult IGeocodeService.BeginReverseGeocode(dev.virtualearth.net.webservices.v1.geocode.ReverseGeocodeRequest request, System.AsyncCallback callback, object asyncState)
    {
        return base.Channel.BeginReverseGeocode(request, callback, asyncState);
    }
    
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse IGeocodeService.EndReverseGeocode(System.IAsyncResult result)
    {
        return base.Channel.EndReverseGeocode(result);
    }
    
    private System.IAsyncResult OnBeginReverseGeocode(object[] inValues, System.AsyncCallback callback, object asyncState)
    {
        dev.virtualearth.net.webservices.v1.geocode.ReverseGeocodeRequest request = ((dev.virtualearth.net.webservices.v1.geocode.ReverseGeocodeRequest)(inValues[0]));
        return ((IGeocodeService)(this)).BeginReverseGeocode(request, callback, asyncState);
    }
    
    private object[] OnEndReverseGeocode(System.IAsyncResult result)
    {
        dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse retVal = ((IGeocodeService)(this)).EndReverseGeocode(result);
        return new object[] {
                retVal};
    }
    
    private void OnReverseGeocodeCompleted(object state)
    {
        if ((this.ReverseGeocodeCompleted != null))
        {
            InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
            this.ReverseGeocodeCompleted(this, new ReverseGeocodeCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
        }
    }
    
    public void ReverseGeocodeAsync(dev.virtualearth.net.webservices.v1.geocode.ReverseGeocodeRequest request)
    {
        this.ReverseGeocodeAsync(request, null);
    }
    
    public void ReverseGeocodeAsync(dev.virtualearth.net.webservices.v1.geocode.ReverseGeocodeRequest request, object userState)
    {
        if ((this.onBeginReverseGeocodeDelegate == null))
        {
            this.onBeginReverseGeocodeDelegate = new BeginOperationDelegate(this.OnBeginReverseGeocode);
        }
        if ((this.onEndReverseGeocodeDelegate == null))
        {
            this.onEndReverseGeocodeDelegate = new EndOperationDelegate(this.OnEndReverseGeocode);
        }
        if ((this.onReverseGeocodeCompletedDelegate == null))
        {
            this.onReverseGeocodeCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnReverseGeocodeCompleted);
        }
        base.InvokeAsync(this.onBeginReverseGeocodeDelegate, new object[] {
                    request}, this.onEndReverseGeocodeDelegate, this.onReverseGeocodeCompletedDelegate, userState);
    }
    
    private System.IAsyncResult OnBeginOpen(object[] inValues, System.AsyncCallback callback, object asyncState)
    {
        return ((System.ServiceModel.ICommunicationObject)(this)).BeginOpen(callback, asyncState);
    }
    
    private object[] OnEndOpen(System.IAsyncResult result)
    {
        ((System.ServiceModel.ICommunicationObject)(this)).EndOpen(result);
        return null;
    }
    
    private void OnOpenCompleted(object state)
    {
        if ((this.OpenCompleted != null))
        {
            InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
            this.OpenCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
        }
    }
    
    public void OpenAsync()
    {
        this.OpenAsync(null);
    }
    
    public void OpenAsync(object userState)
    {
        if ((this.onBeginOpenDelegate == null))
        {
            this.onBeginOpenDelegate = new BeginOperationDelegate(this.OnBeginOpen);
        }
        if ((this.onEndOpenDelegate == null))
        {
            this.onEndOpenDelegate = new EndOperationDelegate(this.OnEndOpen);
        }
        if ((this.onOpenCompletedDelegate == null))
        {
            this.onOpenCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnOpenCompleted);
        }
        base.InvokeAsync(this.onBeginOpenDelegate, null, this.onEndOpenDelegate, this.onOpenCompletedDelegate, userState);
    }
    
    private System.IAsyncResult OnBeginClose(object[] inValues, System.AsyncCallback callback, object asyncState)
    {
        return ((System.ServiceModel.ICommunicationObject)(this)).BeginClose(callback, asyncState);
    }
    
    private object[] OnEndClose(System.IAsyncResult result)
    {
        ((System.ServiceModel.ICommunicationObject)(this)).EndClose(result);
        return null;
    }
    
    private void OnCloseCompleted(object state)
    {
        if ((this.CloseCompleted != null))
        {
            InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
            this.CloseCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
        }
    }
    
    public void CloseAsync()
    {
        this.CloseAsync(null);
    }
    
    public void CloseAsync(object userState)
    {
        if ((this.onBeginCloseDelegate == null))
        {
            this.onBeginCloseDelegate = new BeginOperationDelegate(this.OnBeginClose);
        }
        if ((this.onEndCloseDelegate == null))
        {
            this.onEndCloseDelegate = new EndOperationDelegate(this.OnEndClose);
        }
        if ((this.onCloseCompletedDelegate == null))
        {
            this.onCloseCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnCloseCompleted);
        }
        base.InvokeAsync(this.onBeginCloseDelegate, null, this.onEndCloseDelegate, this.onCloseCompletedDelegate, userState);
    }
    
    protected override IGeocodeService CreateChannel()
    {
        return new GeocodeServiceClientChannel(this);
    }
    
    private class GeocodeServiceClientChannel : ChannelBase<IGeocodeService>, IGeocodeService
    {
        
        public GeocodeServiceClientChannel(System.ServiceModel.ClientBase<IGeocodeService> client) : 
                base(client)
        {
        }
        
        public System.IAsyncResult BeginGeocode(dev.virtualearth.net.webservices.v1.geocode.GeocodeRequest request, System.AsyncCallback callback, object asyncState)
        {
            object[] _args = new object[1];
            _args[0] = request;
            System.IAsyncResult _result = base.BeginInvoke("Geocode", _args, callback, asyncState);
            return _result;
        }
        
        public dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse EndGeocode(System.IAsyncResult result)
        {
            object[] _args = new object[0];
            dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse _result = ((dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse)(base.EndInvoke("Geocode", _args, result)));
            return _result;
        }
        
        public System.IAsyncResult BeginReverseGeocode(dev.virtualearth.net.webservices.v1.geocode.ReverseGeocodeRequest request, System.AsyncCallback callback, object asyncState)
        {
            object[] _args = new object[1];
            _args[0] = request;
            System.IAsyncResult _result = base.BeginInvoke("ReverseGeocode", _args, callback, asyncState);
            return _result;
        }
        
        public dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse EndReverseGeocode(System.IAsyncResult result)
        {
            object[] _args = new object[0];
            dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse _result = ((dev.virtualearth.net.webservices.v1.geocode.GeocodeResponse)(base.EndInvoke("ReverseGeocode", _args, result)));
            return _result;
        }
    }
}
